The disclosure generally relates to the field of computer systems, and more particularly to determining a schema for a schema-less database.
A database schema is essentially a blueprint that describes the organization and structure of data in a database. For example, a schema for a relational database may describe tables, relationships between the tables, column names and data types for the tables, etc. A relational database management system (“RDBMS”) strictly enforces a schema to provide a predictable structure of the data and normalized data sets. Alternatively, in order to provide more flexibility than an RDBMS, some database management systems utilize schema-less data storage. For example, Not Only SQL (“NoSQL”) databases include various types of schema-less databases such as key-value stores, document databases, wide-column databases, and graph databases. The schema-less design of NoSQL databases allows data to be stored in other data structures besides relational data structures. A key-value database stores data as an attribute name with a value. A document database stores data as a collection of documents such as Javascript Objection Notation (“JSON”), Binary JSON (“BSON”), or extensible markup language (“XML”) documents. A graph database stores data as a series of connected nodes. A wide-column database (or column database) uses a flexible number of columns that are created for each row individually as opposed to an entire table of data.